/*
 * Copyright (c) 2020 Tunaiyi
 * Tny Framework is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
 * NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 */

package com.tny.game.net.netty4.channel;

import io.netty.channel.*;
import io.netty.handler.timeout.ReadTimeoutHandler;

import java.util.concurrent.TimeUnit;

public class ReadIdlePipelineChain<C extends Channel> implements ChannelPipelineChain {

    private long idleTimeout = 180000;

    public ReadIdlePipelineChain() {
    }

    public ReadIdlePipelineChain(long idleTimeout) {
        this.idleTimeout = idleTimeout;
    }

    @Override
    public void afterMake(ChannelPipeline channelPipeline) {
        channelPipeline.addLast(new ReadTimeoutHandler(this.idleTimeout, TimeUnit.MILLISECONDS));
    }

    public long getIdleTimeout() {
        return this.idleTimeout;
    }

    public ReadIdlePipelineChain<C> setIdleTimeout(long idleTimeout) {
        this.idleTimeout = idleTimeout;
        return this;
    }

}
